import { DatePicker } from "./date-picker";

export interface FormConfig<T> {
  /** 表单项 */
  items: Array<{
    /** 类型 */
    type: "input" | "callback" | "image" | "switch" | "slot" | "date-picker";
    /** 属性名 */
    name: keyof T;
    /** 标签 */
    label: string;
    /** 插槽名 */
    slotName?: string;
    /** 校验规则 */
    rules?: Array<{
      /** 是否必填 */
      required?: boolean;
      /** 提示文字 */
      message?: string;
      /** 枚举类型 */
      enum?: string;
      /** 长度 */
      len?: number;
      /** 最大值 */
      max?: number;
      /** 最小值 */
      min?: number;
      /** 正则表达式 */
      pattern?: string;
      /** 触发方式 */
      trigger?: "blur" | "change";
    }>;
    input?: {
      placeholder?: string;
    };
    /** 时间选择器 */
    datePicker?: DatePicker;
  }>;
}
